Page({
  data: {
    // 页面类型：recommend(菜品推荐), promotion(优惠活动), all(查看全部)
    pageType: 'all',
    
    // 餐厅信息
    restaurant: {
      name: '农家小炒',
      logo: '/pages/images/share.jpg', // 使用现有图片作为logo
      promotions: [
        '满30减2元',
        '满40减6元'
      ]
    },
    
    // 菜品列表
    dishes: [
      {
        id: 1,
        name: '回锅肉',
        price: 27.99,
        originalPrice: 50.00,
        discount: '5.5折',
        monthlySales: 121,
        image: '/pages/images/dish1.jpg',
        limit: '限购1份',
        tags: ['招牌菜', '香辣']
      },
      {
        id: 2,
        name: '小炒肉',
        price: 25.80,
        originalPrice: 35.00,
        monthlySales: 98,
        image: '/pages/images/dish2.jpg',
        tags: ['下饭菜', '香辣']
      },
      {
        id: 3,
        name: '炝炒莲白',
        price: 18.50,
        originalPrice: 25.00,
        monthlySales: 76,
        image: '/pages/images/dish3.jpg',
        tags: ['素菜', '清淡']
      },
      {
        id: 4,
        name: '麻婆豆腐',
        price: 22.80,
        originalPrice: 32.00,
        monthlySales: 89,
        image: '/pages/images/dish4.jpg',
        tags: ['川菜', '麻辣']
      }
    ],
    
    // 筛选后的菜品列表
    filteredDishes: [],
    
    // 购物车（每个商品含 totalPrice 字段）
    cart: [],
    totalPrice: 0,
    
    // 筛选条件
    filterTags: ['全部', '招牌菜', '下饭菜', '素菜', '川菜'],
    selectedTag: '全部',
    showCartPopup: false, // 控制购物车弹窗显示
    categoryList: [],     // 保存后端分类（含 categoryId 和 categoryName）
  },

  // 获取类别
  getleibie() {
    wx.request({
      url: 'http://localhost:8666/dish-category/listCategory',
      data: { current: 1, size: 10000 },
      method: 'post',
      success: (res) => {
        if (res.data.code === 200) {
          const categoryRecords = res.data.data.records; 
          this.setData({ categoryList: categoryRecords }, () => {
            const categoryNames = categoryRecords.map(item => item.categoryName); 
            const newFilterTags = ['全部', ...categoryNames]; 
            this.setData({
              filterTags: newFilterTags,
              selectedTag: '全部' 
            }, () => {
              this.filterDishes(); 
            });
          });
        } else {
          wx.showToast({ title: '分类数据获取失败', icon: 'none' });
        }
      },
      fail: () => {
        wx.showToast({ title: '网络异常', icon: 'none' });
      }
    });
  },

  // 获取菜品
  getdishinfo() {
    wx.request({
      url: 'http://localhost:8666/dish-info/listDishInfo',
      data: { current: 1, size: 10000 },
      method: 'post',
      success: (res) => {
        if (res.data.code === 200) {
          const backendDishes = res.data.data.records;
          const { categoryList } = this.data; 
          
          const adaptedDishes = backendDishes.map(dish => {
            const category = categoryList.find(c => c.categoryId === dish.categoryId);
            const tags = category ? [category.categoryName] : []; 
            
            return {
              id: dish.dishId,          
              name: dish.name,          
              price: dish.basePrice,    
              image: dish.photo,        
              monthlySales: 0,          
              discount: '',             
              limit: '',                
              tags: tags
            };
          });
          
          this.setData({ dishes: adaptedDishes }, () => {
            this.filterDishes(); 
          });
        } else {
          wx.showToast({ title: '菜品数据获取失败', icon: 'none' });
        }
      },
      fail: () => {
        wx.showToast({ title: '网络异常', icon: 'none' });
      }
    });
  },

  onLoad(options) {
    if (options.type) {
      this.setData({ pageType: options.type });
    }
    this.filterDishes();
    // 若后端未启动，注释以下两行，仅用模拟数据：
    this.getdishinfo();
    this.getleibie();
  },

  // 返回上一页
  goBack() {
    wx.navigateBack();
  },

  // 筛选菜品
  filterDishes() {
    const { pageType, dishes, selectedTag } = this.data;
    let filteredDishes = dishes;
    
    if (pageType === 'recommend') {
      filteredDishes = dishes.filter(dish => dish.discount);
    } else if (pageType === 'promotion') {
      filteredDishes = dishes.filter(dish => dish.discount || dish.limit);
    }
    
    if (selectedTag !== '全部') {
      filteredDishes = filteredDishes.filter(dish => 
        dish.tags.includes(selectedTag)
      );
    }
    
    this.setData({ filteredDishes });
  },

  // 选择标签
  selectTag(e) {
    const tag = e.currentTarget.dataset.tag;
    this.setData({ selectedTag: tag }, () => {
      this.filterDishes();
    });
  },

  // 添加到购物车（修复价格类型 + 计算 totalPrice）
// 添加到购物车（改用全局方法）
addToCart(e) {
  const dish = e.currentTarget.dataset.dish;
  const app = getApp();
  app.addToCart(dish); // 调用全局添加方法
  
  // 同步页面数据（从全局读取）
  const cart = app.globalData.cart;
  const totalPrice = app.getCartTotal().toFixed(2);
  this.setData({ cart, totalPrice });
  
  wx.showToast({ title: '已添加到购物车', icon: 'success' });
},

// 从购物车移除（改用全局方法）
removeFromCart(e) {
  const dishId = e.currentTarget.dataset.id;
  const app = getApp();
  app.removeFromCart(dishId); // 调用全局移除方法
  
  // 同步页面数据（从全局读取）
  const cart = app.globalData.cart;
  const totalPrice = app.getCartTotal().toFixed(2);
  this.setData({ cart, totalPrice });
  
  if (cart.length === 0) {
    this.closeCartPopup();
  }
},

  // 查看购物车（显示弹窗）
  viewCart() {
    if (this.data.cart.length === 0) {
      wx.showToast({ title: '购物车为空', icon: 'none' });
      return;
    }
    this.setData({ showCartPopup: true });
  },

  // 关闭购物车弹窗
  closeCartPopup() {
    this.setData({ showCartPopup: false });
  },

  // 结算
  // checkout() {
  //   wx.showToast({ title: '跳转支付页面', icon: 'success' });
    // wx.navigateTo({ url: '/pages/payment/payment' });
  // },
  checkout() {
    const { cart, totalPrice } = this.data;
  
    // 1. 跳转支付页面（示例：传递总价，复杂数据建议用全局/缓存）
    wx.navigateTo({
      url: `/pages/payment/payment?totalPrice=${totalPrice}`, 
      // 若需传递购物车数据（复杂对象），推荐用全局变量：
      success: () => {
        const app = getApp();
        app.globalData.cart = cart; // 存到全局
      },
      fail: (err) => {
        // 打印错误信息，方便调试
        console.error('跳转失败：', err);
        wx.showToast({ title: '跳转失败，请重试', icon: 'none' });
      }
    });
  
    // 2. （可选）关闭购物车弹窗（如果需要）
    this.closeCartPopup();
  },

  // 分享
  onShareAppMessage() {
    return {
      title: '农家小炒 - 美味川菜等你来',
      path: '/pages/ordering/ordering',
      imageUrl: '/pages/images/share.jpg'
    };
  },

  onShareTimeline() {
    return {
      title: '农家小炒 - 美味川菜等你来',
      imageUrl: '/pages/images/share.jpg'
    };
  }
})